#!/bin/bash

# Flink WordCount 运行脚本（Linux/macOS）

echo "========================================"
echo "Flink WordCount 学习项目"
echo "========================================"
echo ""

# 检查 Maven 是否安装
if ! command -v mvn &> /dev/null; then
    echo "错误：未找到 Maven。请确保已安装 Maven 并将其添加到 PATH 中。"
    exit 1
fi

# 检查 Java 是否安装
if ! command -v java &> /dev/null; then
    echo "错误：未找到 Java。请确保已安装 Java 17 或更高版本。"
    exit 1
fi

# 设置 JVM 参数用于 Java 17 模块系统
JVM_ARGS="--add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED"

# 显示菜单
echo "请选择要运行的程序："
echo "1. 批处理版本 WordCount （推荐）"
echo "2. 流处理版本 StreamingWordCount"
echo "3. 构建项目（不运行）"
echo "4. 清理构建（mvn clean）"
echo "5. 退出"
echo ""

read -p "请输入选择 (1-5): " choice

case "$choice" in
    1)
        echo ""
        echo "运行批处理版本..."
        mvn exec:java -Dexec.mainClass="com.example.WordCount" \
            -Dexec.jvmArgs="$JVM_ARGS"
        ;;
    2)
        echo ""
        echo "运行流处理版本..."
        mvn exec:java -Dexec.mainClass="com.example.StreamingWordCount" \
            -Dexec.jvmArgs="$JVM_ARGS"
        ;;
    3)
        echo ""
        echo "构建项目..."
        mvn clean install
        ;;
    4)
        echo ""
        echo "清理构建..."
        mvn clean
        ;;
    5)
        exit 0
        ;;
    *)
        echo "无效的选择，请重试。"
        ;;
esac

echo ""
